package com.smedi.ismedi.progress.api.dto.request;

import com.smedi.ismedi.progress.api.dto.response.OneAndKeyAndMilestoneTaskListResponse;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author pengyan
 * @date 2022/9/16
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "进度周月报 编辑保存发布 入参")
public class WeekMonthReportEidtSaveRequest {
    /**
     * 主键id
     */
    @ApiModelProperty(value = "主键id")
    private  Long  id;
    /**
     * 项目id
     */
    @ApiModelProperty(value = "项目id")
    private  Long  projectId;
    /**
     * 项目名称
     */
    @ApiModelProperty(value = "项目名称")
    private  String  name;
    /**
     *统计开始时段
     */
    @ApiModelProperty(value = "统计开始时段")
    private  LocalDateTime  statisticalStartTime;
    /**
     *统计结束时段
     */
    @ApiModelProperty(value = "统计结束时段")
    private  LocalDateTime  statisticalEndTime;
    /**
     *统计结束时段
     */
    @ApiModelProperty(value = "统计时段")
    private  String  statisticalTime;
    /**
     * 记录人
     */
    @ApiModelProperty(value = "记录人")
    private  String  recordUser;
    /**
     *记录时间
     */
    @ApiModelProperty(value = "记录时间")
    private  String  recordTtime;
    /**
     * 状态0 草稿，1已发布
     */
    @ApiModelProperty(value = "状态0 草稿，1已发布")
    private  Long  status;
    /**
     * 施工经理审批状态0待审批，1审批通过，2退回
     */
    @ApiModelProperty(value = "施工经理审批状态0待审批，1审批通过，2退回")
    private  Long  constructionManagerApproval;
    /**
     * 周月报类型1周报，2月报
     */
    @ApiModelProperty(value = "周月报类型1周报，2月报")
    private  Long  type;
    /**
     *累积产值
     */
    @ApiModelProperty(value = "累积产值")
    private  Long  accumulationOutput;
    /**
     *上报产值
     */
    @ApiModelProperty(value = "上报产值")
    private  Long  reportOutputValue;
    /**
     *项目总体完成情况
     */
    @ApiModelProperty(value = "项目总体完成情况")
    private  String  projectGeneralCompletion;
    /**
     *进度滞后的原因及纠偏措施
     */
    @ApiModelProperty(value = "进度滞后的原因及纠偏措施")
    private  String  progressLagMeasuresReason;
    /***
     *审批原因
     */
    @ApiModelProperty(value = "审批原因")
    private  String  reason;
    /***
     *创建日期
     */
    @ApiModelProperty(value = "创建日期")
    private  LocalDateTime  createdDate;
    /***
     *创建用户的id
     */
    @ApiModelProperty(value = "创建用户的id")
    private  Long  createdUserId;
    /***
     *最后更新时间
     */
    @ApiModelProperty(value = "最后更新时间")
    private  LocalDateTime  latestUpdatedDate;
    /***
     *最后更新的用户id
     */
    @ApiModelProperty(value = "最后更新的用户id")
    private  Long  latestUpdatedUserId;
    /***
     *发布/保存草稿 方法 处理方式
     */
    @ApiModelProperty(value = "发布/保存草稿 方法 处理方式 DRAFT：保存草稿  RELEASE：发布")
    @NotNull(message = "处理方式不能为空")
    private  String  method;

    /**
     * 业务 token
     */
    @ApiModelProperty(value = "业务 token")
    @NotBlank(message = "业务 token不能为空")
    private String businessToken;
    /**
     * 一级任务list
     */
    List<OneAndKeyAndMilestoneTaskListEidtSaveRequest>  oneTaskListResponse;

    /**
     * 关键线路list
     */
    List<OneAndKeyAndMilestoneTaskListEidtSaveRequest>  keyTaskListResponse;
    /**
     * 里程牌list
     */
    List<OneAndKeyAndMilestoneTaskListEidtSaveRequest>  milestoneListResponse;


    // 附件
    List<AttachmentRequest> attachment;


}
